This invention relates to a cache data backup technology and a cache data restoration technology in a computer to which a multi-OS technology and a virtual machine technology are applied.
In a system where a client apparatus reads and writes data from/to a file server, a database server, and other similar server apparatus to which the client apparatus is coupled through a LAN including the Ethernet or the like, and each server apparatus serving as a back end reads and writes data from/to a storage apparatus to which the server apparatus is coupled through a SAN including a Fibre Channel or the like, a cache memory is generally installed in the storage apparatus and each server apparatus for improvement in system performance, or other reasons. The cache memory is typically located in a system memory, which includes a volatile memory such as a DRAM. For instance, a cache memory having as large a capacity as several to several tens gigabytes is installed in a large-scale storage apparatus equipped with a large-capacity HDD, and the storage apparatus responds to I/O access requests to access a front-end apparatus while caching application data into the cache memory during its operation.
In a case where power is cut off unexpectedly in this type of apparatus, a loss of a huge amount of data on the cache memory is prevented by supplying power temporarily from a battery that is a secondary power source and backing up the cache data to an NVRAM (a non-volatile memory) such as an SSD, which can be accessed more quickly than the HDD. Multi-processor apparatus, which includes multiple processors, take this one step further and keep power consumption during battery operation small by feeding power to only one of the processors and allowing this processor alone to execute the operation of backing up the cache memory.
In recent years, a technology of booting up two or more operating systems (OSes) on a single physical computer in order to make most of hardware resources on a physical computer is attracting attention (see, for example, JP 11-149385 A and WO 2009/113394 A1).
In JP 11-149385 A, there is described a “multi-operating system computer in which a first operating system (OS) configured to execute, in the order of priority, a plurality of tasks having priority levels set thereto and a second OS separate from the first OS are alternately put into operation as an active OS, and which includes an OS switching module configured to switch the active OS from the first OS to the second OS when the first OS is in operation as the active OS and a given task that has a given level of priority set thereto and that is used as a switching trigger task for identifying an occasion to switch the active OS is executed out of the plurality of tasks”.
In WO 2009/113394 A1, there is disclosed a “multi-OS booting apparatus according to the present invention, which boots at least two operating systems (operating system hereinafter called an OS) of a first OS and a second OS, includes: (1) a primary storage unit having a memory area with respect to which a memory space is defined; (2) a secondary storage unit for storing a second boot loader and the second OS; (3) an OS execution unit for causing a first boot loader to perform loading the second boot loader and the second OS from the secondary storage unit into the memory area of the primary storage unit, which is defined as a first memory space managed by the first OS with respect to the primary storage device by a first context, wherein the loading is performed by running the first boot loader, which is to run under the first OS that operates in the first context being a context indicating control information for a CPU (Central Processing Unit) and being a context for the first OS, under the first OS operating in the first context; and (4) a loader execution unit for causing the second boot loader to generate a context for the second boot loader, which defines a third memory space with respect to the primary storage unit, wherein the third memory space includes a memory area defined as a second memory space managed by the second OS and a memory area where the second boot loader and the second OS have been loaded, and to perform switching from the first context to the context generated for the second boot loader, by executing the second boot loader, which has been loaded into the memory area defined as the first memory space, under the first OS operating in the first context, for causing the second boot loader to load the second OS, which has been loaded into the memory area of the primary storage unit by the first boot loader, into the memory area of the primary storage unit defined as the second memory space included in the third memory space, and to generate a context for the second OS, by executing the second boot loader in the context for the second boot loader, and for causing the second boot loader to perform switching from the context for the second loader to the context generated for the second OS, and to boot the second OS in the context for the second OS”.
Space saving and a lower price can be expected by utilizing this multi-OS technology to install a storage control OS as a first OS (first host OS), install a virtual machine monitor (VMM) as a second OS (second host OS), and install server control OSes as OSes (a guest OS1 to a guest OSn) that are run on a plurality of virtual machines (VM1 to VMn) on the virtual machine monitor. In addition, improvement in I/O data read/write performance can be expected by executing I/O data read/write, which has been performed over a SAN with older technologies, via a memory shared between the first host OS and the guest OSes.